package com.qixiaobao.servicefee.mapper;

import com.qixiaobao.servicefee.domain.HandlingFee;
import com.qixiaobao.servicefee.domain.HandlingFeeCharge;
import com.qixiaobao.servicefee.domain.dto.HandlingFeeDTO;
import com.qixiaobao.servicefee.domain.dto.HandlingFeeDetailDTO;
import com.qixiaobao.servicefee.domain.dto.WaitSettlementDTO;
import com.qixiaobao.servicefee.domain.vo.HandlingFeeDetailVO;
import com.qixiaobao.servicefee.domain.vo.HandlingFeeWaitSettlementVO;
import com.qixiaobao.system.domain.Person;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * @Description 手续费管理  数据层
 * @Author yangxm
 * @Date 2025/6/24 10:13
 */
@Mapper
public interface ServiceFeeMapper {


    /**
     * @Description 查询待结算列表
     * @Author yangxm
     * @Date 2025/6/24 10:15
     * @param waitSettlementDTO
     * @return java.util.List<com.qixiaobao.servicefee.domain.vo.WaitSettlementVO>
     */
    List<HandlingFeeWaitSettlementVO> selectWaitSettlementList(WaitSettlementDTO waitSettlementDTO);

    /**
     * @Description 查询待结算 保险费总计、手续费总计
     * @Author yangxm
     * @Date 2025/6/24 13:38
     * @param waitSettlementDTO
     * @return java.util.List<com.qixiaobao.servicefee.domain.vo.WaitSettlementVO>
     */
    List<HandlingFeeWaitSettlementVO> selectWaitMoneyTotalList(WaitSettlementDTO waitSettlementDTO);

    /**
     * @Description 查询待结算人员列表
     * @Author yangxm
     * @Date 2025/6/24 13:38
     * @param chargeId
     * @return java.util.List<com.qixiaobao.nondirect.invoice.domain.domain.Person>
     */
    List<Person> selectWaitPersonList(Long chargeId);

    /**
     * @Description 保存手续费
     * @Author yangxm
     * @Date 2025/6/24 14:41
     * @param handlingFee
     * @return int
     */
    int insertHandlingFee(HandlingFee handlingFee);

    /**
     * @Description 保存手续费与费用中间表数据
     * @Author yangxm
     * @Date 2025/6/24 14:41
     * @param handlingFeeCharge
     * @return int
     */
    int insertHandlingFeeCharge(HandlingFeeCharge handlingFeeCharge);

    /**
     * @Description 更新手续费
     * @Author yangxm
     * @Date 2025/6/24 14:41
     * @param handlingFee
     * @return int
     */
    int updateHandlingFee(HandlingFee handlingFee);

    /**
     * @Description 待收款、已结算 列表
     * @Author yangxm
     * @Date 2025/6/25 11:40
     * @param handlingFeeDTO
     * @return java.util.List<com.qixiaobao.servicefee.domain.HandlingFee>
     */
    List<HandlingFee> selectHandlingFeeList(HandlingFeeDTO handlingFeeDTO);

    /**
     * @Description 待收款、已结算 详情列表
     * @Author yangxm
     * @Date 2025/6/25 11:40
     * @param handlingFeeDetailDTO
     * @return java.util.List<com.qixiaobao.servicefee.domain.HandlingFee>
     */
    List<HandlingFeeDetailVO> selectHandlingFeeDetailList(HandlingFeeDetailDTO handlingFeeDetailDTO);

    /**
     * @Description 待收款、已结算  - 修改备注
     * @Author yangxm
     * @Date 2025/6/25 11:40
     * @param handlingFee
     */
    int updateRemark(HandlingFee handlingFee);

}
